scale = input().split('|')
untouched_weight = list(input())
left_scale = list(scale[0])
right_scale = list(scale[1])
for x in untouched_weight:
switch = 'r' if len(left_scale) > len(right_scale) else 'l'
if switch == 'r':
right_scale.append(x)
else:
left_scale.append(x)
print("".join(left_scale) + "|" + "".join(right_scale) if len(left_scale) == len(right_scale) else 'Impossible')
#include<iostream>
#include<algorithm>
#include<string>
#include "vector"
#include<stack>
using namespace std;
int main()
{
vector<string>list1,list2;
string word1,word2,t,m;
long long num,c=0,v=0,a=0,b=0,max=1;
char l;
bool test=false;
cin>>word1>>word2;
while(1)
{
if (word1[c]!='|')
{
a++;
t+=word1[c];
c++;
}
else break;
}
for (int i =c+1 ; i <word1.size(); i++)
{
b++;
m+=word1[i];
}
if (a<b)
{
if (a+word2.size()==b)
{
t+=word2;
cout<<t<<"|"<<m<<endl;
}else if (a+word2.size()>b)
{
for (int i = 0; i < b-a; i++)
{
t+=word2[0];
word2.erase(word2.begin());
}
if (word2.size()%2==0)
{
for (int i = 0; i < word2.size(); i+=2)
{
t+=word2[i];
m+=word2[i+1];
}
cout<<t<<"|"<<m<<endl;
}
else cout<<"Impossible"<<endl;
}else cout<<"Impossible"<<endl;
}
else if(b<a)
{
if (b+word2.size()==a)
{
m+=word2;
cout<<t<<"|"<<m<<endl;
}else if (b+word2.size()>a)
{
for (int i = 0; i < a-b; i++)
{
m+=word2[0];
word2.erase(word2.begin());
}
if (word2.size()%2==0)
{
for (int i = 0; i < word2.size(); i+=2)
{
t+=word2[i];
m+=word2[i+1];
}
cout<<t<<"|"<<m<<endl;
}
else cout<<"Impossible"<<endl;
} else cout<<"Impossible"<<endl;
}
else
{
if (word2.size()%2==0)
{
for (int i = 0; i < word2.size(); i+=2)
{
t+=word2[i];
m+=word2[i+1];
}
cout<<t<<"|"<<m<<endl;
}
else cout<<"Impossible"<<endl;
}
}
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |